Searched: \.*
Results from Sdf web

A Quick Introduction to SDF

by Joost Visser and Jeroen Scheerder

Abstract

This paper is intended for first time users. It contains motivation for using SDF with Generalized LR parsing and a step-by-step guided tour along the main features. The paper answers some some basic questions about SDF and gives a step-by-step recipe for developing SDF grammars. It even touches on the issue of writing Island Grammars in SDF.

%PDFICON%

The SDF open-source software license (BSD)

Copyright (c) 2002-2007, CWI All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of CWI nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The source code of SDF is split in several components. Each component implements the same build interface, and adheres to certain coding standards.

Programming environment

  • This document describes how to get the SDF source from subversion and how to build all components in the right order.
  • This document describes how the SDF team uses version management.

by MarkVanDenBrand, JeroenScheerder?, JurgenVinju and EelcoVisser. Disambiguation filters for scannerless generalized LR parsers. In N. Horspool, editor, Compiler Construction (Transform.CC'02), volume 2304 of Lecture Notes in Computer Science, pages 143--158, Grenoble, France, April 2002. Springer-Verlag.

Abstract

In this paper we present the fusion of generalized LR parsing and scannerless parsing. This combination supports syntax definitions in which all aspects (lexical and context-free) of the syntax of a language are defined explicitly in one formalism. Furthermore, there are no restrictions on the class of grammars, thus allowing a natural syntax tree structure. Ambiguities that arise through the use of unrestricted grammars are handled by explicit disambiguation constructs, instead of implicit defaults that are taken by traditional scanner and parser generators. Hence, a syntax definition becomes a full declarative description of a language. Disambiguation constructs can be interpreted as filters on parse forests. Scannerless generalized LR parsing is a viable technique that has been applied in various industrial and academic projects.

Technical report

Review

The following is an excerpt from a anonymous referee report:

This paper, "Disambiguation Filters for Scannerless Generalized LR Parsers," is about a systematic way of dealing with the problem of parsing with ambiguous grammars.

I thought this paper was wonderful. Sure it has some flaws, but I think it and all the SGLR papers should be required reading by all faculty who teach compilers and all graduate students who will someday teach compilers. Why? Because SGLR represents so many advantages over the lex+yacc or hand-coded lexer+parser models that the only compelling reason that I can think of to not teach SGLR is, as Homer Simpson would say, "It's a good idea, but it's a new idea, and, therefore, I fear it and must reject it." (OK, it does have one disadvantage that is serious, speed, but that's not enough of a concern to eliminate it from all compiler jobs.)

So, what's SGLR? It's a system of handling all lexical and parsing concerns within a unified Generalized LR parser. This unified system has advantages galore, which are well-described in the paper. Because it uses GLR parsing technology it allows ambiguous grammars. This paper describes 4 mechanisms that allow for declarative disambiguation of the resulting parses. All four are well described and carefully analyzed.


CategoryPaper
There are a number of features for disambiguation in SDF2.

Associativity

Associativity declarations are used to solve ambiguities of an operator with respect to itself. For example, the production

Exp "+" Exp -> Exp {left}

is annotated with the attribute 'left' which entails that addition is left associative with respect to itself, i.e., a + b + c should be read as (a + b) + c.

Priorities

Priorities can be used to solve ambiguities between operators. For example, the priority declaration

Exp "*" Exp -> Exp > Exp "+" Exp -> Exp

declares multiplication to have higher priority than addition.

Reject Productions

Reject productions are used to exclude some phrases from a sort. The standard application is the exclusion of keywords from lexical sorts. For example, the reject production

"if" -> Id {reject}

excludes 'if' as an identifier.

Restrictions

Follow restrictions are used to declare that some sort cannot be followed by some characters. For instance, the restriction

Id -/- [a-z]

declares that phrases of the sort Id cannot be followed by lower case letters.

Other Disambiguation Methods

  • avoid
  • prefer

Introduction

A parsing algorithm that maintains multiple LR parsing states in parallel.

From Object Oriented Tree Traversal With JJForester :

GeneralizedLR parsing removes the restriction to a non-ambiguous subclass of the context-free grammars, such as the LR(k) class. This allows a maximally natural expression of the intended syntax; no more need for `bending over backwards' to encode the intended grammar in a restricted subclass. Furthermore, generalized parsing leads to better modularity and allows `as-is' syntax reuse.

Implementations

Implementations of GLR using a separate scanner

  • ElkHound is GLR parser generator
  • Bison includes an GLR parser.
  • PyGgy A Python parser generator that generates SLR tables for a GLR parsing engine.

Implementations of Scannerless Generalized LR

  • SGLR is a Scannerless Generalized LR parser
  • DParser is Scannerless Generalized LR parser generator.

The maintainers of Elkhound maintain a list of implementations as well.

Description

The Grammar Base is a collection of Sdf syntax definitions. Its purpose is to:

  1. provide syntax definitions for a wide range of existing languages so that at least the parsing side of implementing language processing tools for these languages becomes easier;
  2. provide examples of the usage of SDF;
  3. promote the use of SDF; and
  4. provide real-life data for testing and benchmarking the implementation of SDF.

Grammars

A list of grammars in the Grammar Base is available online at:

If you have a syntax definition for a language that is not listed there and that you would like to contribute, or if you have a request for a particular language, please contact the Grammar Base maintainers?.

Grammar Management

If you would like to contribute to the GrammarBase, take a look at the GrammarBaseTaskList?, and read about AddingAGrammarToGB?.

Tools

LeonMoonen? asked me what the difference is between lexical and context-free FollowRestrictions? in SDF2. Here follows my response. (Unfortunately it is in dutch.) -- EelcoVisser - 29 Mar 2001

> Ik ben een beetje in verwarring geraakt over lexicale versus context-vrije
> restricties in SDF(2).
> 
> - is er wel verschil?
> - zo ja, wanneer lexicaal en wanneer context-vrij gebruiken?

Het verschil is:

  lexical restrictions 
     A -/- cc1
  context-free restrictions
     B -/- cc2

wordt genormaliseerd naar

   restrictions
     <A-LEX> -/- cc1
     <B-CF> -/- cc2

Zie pagina 207 proefschrift

> "vroeger" dacht ik dat een lexicale restrictie (denk aan "longest match")
> betekende dat er *geen* optionele layouit tussen soort en de
> restricted chars mochten staan. Bij context-vrije zou dat dan wel mogen. 
> Dat blijkt niet waar te zijn (experimenteel vastgesteld). 

Nee, een restrictie S -/- cc (zie boven voor verschil tussen lex en cf)
betekent dat characters uit cc die niet mogen voorkomen achter een boom van
soort S. De implementatie van restricties (waarbij een enkele character set
gegeven is) wordt gegeven op pagina 47 van proefschrift; regel (Fo4). Een
restrictie heeft tot gevolg dat de follow set van soort S beperkt wordt. Dit
sluit een reductie van een S boom uit in het geval er een karacter uit cc
volgt.

> Helaas ga je in jouw proefschrift niet in op context-vrije restricties 
> (wel op lexicale) en uit de specs kan ik niet direct een verschil 
> afleiden (behalve op welke soorten ze toegepast worden).

Er staan inderdaad geen voorbeelden in van context-vrije restricties, maar de
semantiek is dus hetzelfde als die van lexicale. (Pagina's 207 en 47)

> De reden dat ik meer wil weten is dat ik bezig ben met island grammars 
> en in sommige gevallen een ambiguiteit op kan lossen met een 
> context-vrije restrictie op een verder lexicaal gedefinieerde soort 
> ([a-z]+ -> Water). 

Als je het voorbeeld wat uitgebreider beschrijft kan ik je misschien helpen.
* The SDF users list (brand new) is for all matters concerning SDF usage * subscribe * unsubscribe * mail your question, idea, issue

* The SDF developers list is reserved for committers to the SDF project * subscribe * unsubscribe * mail your question or discussion

Description

The package PGEN (for Parsetable Generator) contains tools for generating parse tables.

Tools

Links

The official homepage of PGEN:

See also

  • SyntaxDefinitionForLanguagePrototyping?. Eelco Visser. PhD? Thesis, University of Amsterdam. September, 1997.

  • A Family of Syntax Definition Formalisms. Eelco Visser. In Mark van den Brand et al., editors. ASF+SDF95. A Workshop on Generating Tools from Algebraic Specifications. Technical Report P9504, Programming Research Group, University of Amsterdam, May 1995. pages 89-126. An extended and improved version of the paper appeared as Technical Report P9706, Programming Research Group, University of Amsterdam, July 1997.

  • A case study in optimizing parsing schemata by disambiguation filters. Eelco Visser. In International Workshop on Parsing Technology (IWPT97), Boston, USA, September 1997.

  • Character classes. Eelco Visser. Technical Report P9708, Programming Research Group, University of Amsterdam, August 1997.

  • Scannerless Generalized-LR Parsing. Eelco Visser. July, 1997. Technical Report P9707, Programming Research Group, University of Amsterdam.

  • From Context-Free Grammars with Priorities to Character Class Grammars. Eelco Visser. In Liber Amicorum Paul Klint. CWI, Amsterdam, November 1997. Also appeared as Technical Report P9717, Programming Research Group, University of Amsterdam, October 1997.

  • Using Filters for the Disambiguation of Context-free Grammars. Paul Klint and Eelco Visser. In G. Pighizzini and P. San Pietro, editors, Proceedings ASMICS Workshop on Parsing Theory, pages 1-20, Milano, Italy, October 1994. Tech. Rep. 126-1994, Dipartimento di Scienze dell Informazione, Università di Milano. Also appeared as Technical Report P9426, Programming Research Group, University of Amsterdam, December 1994. (Recent version in PhD? thesis)
Proposed Changes

A summary of changes from SDf.2.1 to SDF.2.2 :

  • The syntax of Tools.ATerms will be used for SDF attributes for example: A -> B {left} B -> C {aap(noot,mies)}

  • SDF layout is defined in a separate module and imported at the top. This allows other modules to be reused without inheriting the SDF layout and comment conventions.

  • Tools.ATerm and SDF unquoted literals are distinguished using the sort UQSdfLiteral?.

  • The "definition" keyword is removed. An SDF definition is just a sequence of SDF modules: Module* -> Definition

  • The following file extensions will be used for SDF modules and definitions:
    • .sdf for SDF modules
    • .def for SDF definitions

  • The SDF grammar will contain constructor annotations which define the abstract syntax of SDF

  • Three new constructors are introduced in AsFix:
    • qlit to represent quoted literals
    • uqlit to represent unquoted literals
    • flatlex to represent flattened lexicals

  • The production sorts Symbols -> Grammar has been replaced bu sorts Sorts -> Grammar

Unresolved Issues

  • Do we need directly visible kernel syntax?

  • Are there convincing examples of kernel syntax?
  • Why can these not be handled by lexical syntax?

  • How do the sorts in kernel syntax and other sections relate?

  • Do we need aliases?

  • Why Symbols in parameter list following module name?

  • Keyword "Set" should be "set"

  • Do we need the "(" Symbol "=>" Symbol ")" syntax?

  • Why are the lookaheads "" {Lookahead ","}* "?" visible? Should belong to kernel syntax.

  • How to add GrammarAnnotations??

(note: this is not an official release plan and probably quite out of date. Please update if some info is incorrect!)

Below is a list of considerations for the next generation (version 3) of the Syntax Definition Formalism SDF:

  • An improved mechanism to deal with multiple types of layout is desirable
    • Idea: No longer specify layout using the sort LAYOUT but rather make layout a parameter of context-free syntax sections context-free syntax (C-Layout) foo bar -> C context-free syntax (Sdf-Layout) hello world -> Sdf

  • In the current version of SDF the priority of alternatives is strange and differs from alternative syntax definition formalisms. A B | C D is grouped as A (B|C) D instead of (A B) | (C D). Can SDF be redesigned to improve this?
    • Idea: use explicit sequence operator: A . B | C . D

  • What are the top sorts of a grammar? Currently all declared sorts automatically become top sorts. This behavior allows sentences over a sub part of a language to be accepted by the parser. Parsing over a part of a language is required during development of a grammar and corresponding tooling. In general however, the number of top sorts needs to be restricted in order for the parser to only accept sentences that really belong to a language.
    • Idea: Add "top sorts" section to SDF
    • Idea: Adapt the parser generator to support multiple start states which are independent of the declared top sorts.

  • What naming scheme to use to specify and locate Sdf modules?
    • Idea: use Java's Internet-wide unique package naming scheme. imports nl.cwi.gb.sdf.* nl.cwi.gb.aterms.*

  • What flattening methods of lexicals are required?
    • Idea: flattening with structure preservation. This approach would for instance preserve the lexical structure of URL's (["http:","//", "www.cwi.nl", "/"]) * Idea: flattening without structure preservation. For example: "http://www.cwi.nl/"

  • To decrease the dependency of tools on the abstract syntax format of Sdf and to ease manipulation of Sdf parse trees, an AsFix API is required. This API should provide efficient access functions to AsFix terms and preferably should be generated from the Sdf syntax.

  • Do we really need hidden and exported grammars?
SDF2 is a rich formalism for the definition of the syntax of all kinds of computer languages. This page explores the possibilities of the formalism by means of a number of fragments of syntax definitions from the SDF2 GrammarBase. In particular, the language is contrasted with traditional formalisms that use a separate scanner to deal with lexical syntax.

(When editing this page, uncheck the ConvertSpacesToTabs? checkbox to avoid spoiling the layout of the examples.)

Context-free Syntax Definition

expression grammar

Disambiguating Expressions

Lexical Syntax Definition

idenitifiers, layout

Regular Expressions

Overloading Delimiters

BibTeX? is a language for the describtion of bibliographical information such as articles and books. For example, the following entry describes a PhD? thesis.

 @PhdThesis{Vis97.thesis,
   author = {Visser, Eelco},
   title  = {Syntax Definition for Language Prototyping},
   year   = {1997},
   month  = {September},
   school = {University of Amsterdam},
   URL    = { http://www.cs.uu.nl/~visser/thesis/ }
 }

In the syntax of BibTeX? entries the symbol { has two meanings: (1) indicating the start of the list of fields and (2) indicating the start of a field body. The second kind of use requires a lexical treatment since the body of a field consists of an arbitrary list of characters until the closing } is found. In an approach where scanner and parser are separated it is not possible for the scanner to know which kind of { is encountered. Furthermore, a field body can contain nested occurences of { and }, which should only occur in matching pairs. In

Finally, the treatment of whitespace is different between entries, between the fields of an entry and inside the body of a field.

  context-free syntax
    C {Entry C}* C                  -> Entries 
    "@" EName "{" Key "," 
                  {Field ","}* ","? 
              "}"                   -> Entry 
    Name "=" Value                  -> Field
    "{" ValWords "}"                -> Value
    (ValWord | ("{" ValWords "}"))* -> ValWords
  lexical syntax
    ~[\{\}\ \t\n]+  -> ValWord
  lexical restrictions
    ValWord   -/- ~[\{\}\ \t\n]

The complete syntax definition for BibTeX? (that also treats double quotes in field bodies correctly) can be found at

http://www.cwi.nl/~mdejonge/grammar-base/bibtex.0/index.html

Solving Lexical Ambiguities

Longest Match

follow restrictions

Reserved Words

in a normal scanner generator like LEX

when combining languages we want to have separate sets of reserved words;

a COBOL reserved word should not be used as a COBOL identifier, but might be quite usable as a SQL identifier

Ignoring Whitespace in Lexicals

In Fortran whitespace inside lexicals is not significant. This can be accomodated in Trash.SDFII by using context-free syntax to define lexicals.

Dividing a Syntax Definition into Modules

reuse of pieces of syntax

renaming

Combining Languages

COBOL is a language for manipulating business information represented by means of lists of records. COBOL programs are often mixed with fragments from other languages. For example, SQL queries can be embedded to access a database and CICS programs are used for process control. It is desirable to describe the syntax of each of the language separately and combine these descriptions as needed.

In a traditional syntax definition formalism this is not possible: (1) The grammars restrictions such LL or LALR on which the context-free syntax is based are not closed under composition. (2) the regular grammars on which the definition of the lexical syntax are based are not closed under composition either.

In practice, this translates to the following: A scanner does not consider the context in determining the sort of a token. Therefore, normal scanners cannot deal with

(LEX provides a workaround by means of modes.)

In Trash.SDFII the syntax of the composing languages can be described in separate modules and combined at will. For example, consider the following fragments from a syntax definition for COBOL. (Note that the actual combined syntax definition for COBOL, CICS and SQL combined consists of 1600 LOC divided into 38 modules.)

Module ID defines the syntax of identifiers. The 

 module ID
   lexical syntax
     [0-9]* [A-Z]                                          -> Lex-Id
     [0-9]* [A-Z] [A-Za-z0-9\-]* [A-Za-z0-9]               -> Lex-Id
     [0-9]+ [\-] [0-9\-]* [A-Z] [A-Za-z0-9\-]* [A-Za-z0-9] -> Lex-Id
   context-free syntax
     Lex-Id -> Id 
   lexical restrictions
     Lex-Id -/- [A-Za-z0-9\-]

Module COBOL defines the syntax of COBOL programs. The actual syntax definition for cobol consists of 36 modules. Here only the productions relevant for the example are shown. Note that the syntax of Picture overlaps with the syntax for Id. This overlap is disambiguated by context.

 module COBOL
   imports ID %% ...
   lexical syntax
     [0-9XxAa\(\)pZzVvSszBCRD\/\,\$\+\-\*\:]+ -> Picture
   context-free syntax
     Ident-div Env-div Data-div Proc-div            -> Program
     "DATA" "DIVISION" "." File-sec Ws-sec Link-sec -> Data-div
     "FILE" "SECTION" "." File-desc*                -> File-sec
     "FD" Id Fd-item* "." Data-desc*                -> File-desc
     Dd-header Dd-body*                             -> Data-desc

Module SQL defines the syntax for SQL queries. Queries are embedded into COBOL programs by means of the keywords EXEC SQL ... END-EXEC.

 module SQL
   lexical syntax
     [A-Z0-9\-\_\.\:]+ -> Sql-id
   context-free syntax
     "SELECT" Distinct Select-list From-into Where Order-by -> Select
     Select                                                 -> Sql-item
     "EXEC" "SQL" Sql-item+ "END-EXEC" "."                  -> Data-desc
     "EXEC" "SQL" Sql-item+ "END-EXEC"                      -> Stat

Module CICS defines the syntax of CICS commands and their embedding in COBOL programs. Note that a command can have a reference to an A-exp, which is a COBOL expression.

 module CICS
   imports PROGRAM
   lexical syntax
     [A-Z]+ -> Cics-kw
   context-free syntax
     Stat* "EXEC" "CICS" Cics-command Cics-opt* "." -> Sentence
     "EXEC" "CICS" Cics-command Cics-opt* "END-EXEC" -> Stat
            
     Cics-kw                  -> Cics-opt
     Cics-kw "(" Cics-arg ")" -> Cics-opt
     A-exp                    -> Cics-arg
     Str                      -> Cics-arg
     "ADDRESS" "OF" A-exp     -> Cics-arg
     "LENGTH" "OF" A-exp      -> Cics-arg
     "ABEND"                  -> Cics-command
     %% etc.

SGLR (30 Jun 2008 - 09:40 - r1.6 - Main.karltk)

Description

SGLR, Scannerless Generalized LR Parser, is an implementation of Tomita's Generalized LR algorithm with extensions for scannerless parsing. The SGLR package contains the tool sglr, which is a generic parser. The sglr parser interprets parse tables generated by the parse table generator from an SDF2 syntax definition. The parser outputs parse trees or parse forests if there is more than one possible parse tree.

Links

The official homepage of SGLR: * http://www.meta-environment.org

See also

* SDF Publications * SGLR parse table format

From the report Scannerless Generalized LR Parsing:

Scannerless parsing is a parsing technique in which lexical and context-free syntax are integrated into one grammar and are all handled by a single context-free analysis phase. This approach has a number of advantages including discarding of the scanner and lexical disambiguation by means of the context in which a lexical token occurs.

Implementations

  • SGLR is a Scannerless Generalized LR parser
  • DParser is Scannerless Generalized LR parser generator.

Sdf2BundleRelease16 (26 Feb 2008 - 10:24 - r1.3 - ArnoldLankamp?)

SDF2 Bundle 1.6

Contents

sdf2-bundle 1.6 consists of: * asc-support-1.6 * asf-support-1.0 * sdf-support-1.0 * pt-support-0.11 * sglr-3.9 * toolbuslib-0.4 * pgen-1.6

Download

See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs.

Source tar.gz

* aterm-2.0 * sdf2-bundle-1.6

Source RPM

* aterm-2.0 * sdf2-bundle-1.6

Redhat Linux RPM

Redhat 8.0: * aterm-2.0 * sdf2-bundle-1.6

Redhat 9.0: * aterm-2.0 * sdf2-bundle-1.6

SuSE Linux RPM

SuSE 8.2: * aterm-2.0 * sdf2-bundle-1.6

SDF2 Bundle 2.0.1

Contents

sdf2-bundle 2.0.1 consists of: * asc-support-1.8 * asf-support-1.2 * sdf-support-2.0 * pt-support-1.0 * sglr-3.10.2 * toolbuslib-0.5.1 * pgen-2.0

Download

See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs.

Source tar.gz

* aterm-2.0.5 * sdf2-bundle-2.0.1

Source RPM

* aterm-2.0.5 * sdf2-bundle-2.0.1

Redhat Linux RPM

Redhat 8.0: * aterm-2.0.5 * sdf2-bundle-2.0.1

Redhat 9.0: * aterm-2.0.5 * sdf2-bundle-2.0.1

SuSE Linux RPM

SuSE 8.2: * aterm-2.0.5 * sdf2-bundle-2.0.1

Sdf2BundleRelease21 (26 Feb 2008 - 10:24 - r1.4 - ArnoldLankamp?)

SDF2 Bundle 2.1

Contents

sdf2-bundle 2.1 consists of: * asc-support-1.9 * asf-library-1.0 * asf-support-1.3 * error-support-0.1.1 * pgen-2.1 * pt-support-1.1 * sdf-support-2.1 * sglr-3.11 * toolbuslib-0.6

Download

See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs.

Source tar.gz

* aterm-2.1 * sdf2-bundle-2.1

Source RPM

* aterm-2.1 * sdf2-bundle-2.1

Redhat Linux RPM

Redhat 8.0: * aterm-2.1 * sdf2-bundle-2.1

Redhat 9.0: * aterm-2.1 * sdf2-bundle-2.1

SuSE Linux RPM

SuSE 8.2: * aterm-2.1 * sdf2-bundle-2.1

Sdf2BundleRelease22 (26 Feb 2008 - 10:23 - r1.8 - ArnoldLankamp?)
Released July 04, 2004.

The SDF2 Bundle is an easy to install collection of packages that implement the modular SDF syntax definition formalism.

Contents

SDF2 Bundle 2.2 consists of:

* sglr-3.12 * pgen-2.2 * asf-library-1.1 * asc-support-2.0 * asf-support-1.4 * sdf-support-2.1.1 * pt-support-1.2 * toolbuslib-0.6 * error-support-0.1.1

SDF2 Bundle 2.2 requires: * ATerm Library 2.2

Download

See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs.

Source tar.gz

* aterm-2.2 * sdf2-bundle-2.2

Source RPM

* aterm-2.2 * sdf2-bundle-2.2

Redhat Linux RPM

Redhat 8.0: * aterm-2.2 * sdf2-bundle-2.2

Redhat 9.0: * aterm-2.2 * sdf2-bundle-2.2

SuSE Linux RPM

SuSE 8.2: * aterm-2.2 * sdf2-bundle-2.2

SuSE 9.0: * aterm-2.2 * sdf2-bundle-2.2

Fedora Core RPM

Fedora Core 2: * aterm-2.2 * sdf2-bundle-2.2

Fedora Core 3: * aterm-2.2 * sdf2-bundle-2.2

Mac OS X binaries

* aterm-2.2 * sdf2-bundle-2.2

* The *-macosx.tar.gz files contain a file readme.txt with installation instructions.

Microsoft Windows Cygwin binaries * aterm-2.2 * sdf2-bundle-2.2

* The *-cygwin.tar.gz files contain a file readme.txt with installation instructions.

Sdf2BundleRelease23 (26 Feb 2008 - 10:23 - r1.12 - ArnoldLankamp?)
Released January 10, 2005.

Download

See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs.

Source tar.gz

* aterm-2.3.1 * sdf2-bundle-2.3?

Source RPM

* aterm-2.3.1? * sdf2-bundle-2.3?

Redhat Linux RPM

Redhat 9.0: * aterm-2.3.1? * sdf2-bundle-2.3?

SuSE Linux RPM

SuSE 9.0: * aterm-2.3.1? * sdf2-bundle-2.3?

Fedora Core RPM

Fedora Core 2: * aterm-2.3.1? * sdf2-bundle-2.3?

Fedora Core 3: * aterm-2.3.1? * sdf2-bundle-2.3?

Microsoft Windows Cygwin binaries

* aterm-2.3.1? * sdf2-bundle-2.3?

* The *-cygwin.tar.gz files contain a file readme.txt with installation instructions.

Mac OS X binaries

* aterm-2.3.1? * sdf2-bundle-2.3?

* The *-macosx.tar.gz files contain a file readme.txt with installation instructions.

License

The SDF2 Bundle is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (GNU LGPL) as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details

Contents

SDF2 Bundle 2.3 consists of: * asc-support-2.2 * asf-library-1.2.1 * asf-support-1.4.2 * error-support-1.0.1 * pgen-2005-01-10 * pt-support-1.4 * sdf-support-2.1.3 * sglr-3.14 * toolbuslib-0.7.1 * tide-support-1.0

SDF2 Bundle 2.3 requires: * ATerm Library 2.3.1

News

This is mainly a maintenance release, fixing a number of bugs. However, a number of important features have been added.

* Fixed a bug in obtaining a parse table when restoring brackets with a grammar without start symbols.

* Fixed implosion of alternative literals. "-" | "+" becomes alt(1,[]) or alt(2,[]) because a literal does not have a representation in an imploded tree. This fixes a core dump

* The efficiency of the syntax checker was improved drastically. This reduces parsetable generation times.

* A new commandline tool: filterPT. It filters parse forests based on some command line arguments. Currently, we have one filter to find trees with a maximum or minumum number of occurrences of a certain non-terminal. It is used to implement filters for island grammars.

* A new small package: tide-support. Contains a library for developing new TIDE debugging adapters.

(News selected from Meta-Environment 1.5.2 and 1.5.3 news)

Released August 17, 2005.

Download

See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs.

Source tar.gz

* aterm-%ATERMVERSION% * sdf2-bundle-%SDFVERSION%?

Source RPM

* aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Redhat Linux RPM

Redhat 9.0: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

SuSE Linux RPM

SuSE 9.0: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Fedora Core RPM

Fedora Core 2: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Fedora Core 3: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Microsoft Windows Cygwin binaries

This release of the SDF2 Bundle did not install correctly on Cygwin. These issues have been fixed in the next release: sdf2-bundle-2.3.2.

Mac OS X binaries

* aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

* The *-macosx.tar.gz files contain a file README with installation instructions.

License

The SDF2 Bundle is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (GNU LGPL) as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details

Contents

SDF2 Bundle 2.3.1 consists of: * asc-support-2.2 * asf-library-1.2.1 * asf-support-1.4.2 * error-support-1.0.1 * pgen-2005-01-10 * pt-support-1.4 * sdf-support-2.1.3 * sglr-3.14 * toolbuslib-0.7.1 * tide-support-1.0

SDF2 Bundle 2.3.1 requires: * ATerm Library 2.4

News

This is a minor update of the SDF2 Bundle 2.3. It solves an compatibility problem with the latest release of the ATerm Library (2.4). Also, this release adds support for pkg-config.

Released August 26, 2005.

Download

See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs.

Source tar.gz

* aterm-%ATERMVERSION% * sdf2-bundle-%SDFVERSION%?

Source RPM

* aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Redhat Linux RPM

Redhat 9.0: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

SuSE Linux RPM

SuSE 9.0: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Fedora Core RPM

Fedora Core 2: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Fedora Core 3: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Microsoft Windows Cygwin binaries

The *-cygwin.tar.gz files contain a file README with installation instructions.

* aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Mac OS X binaries

The *-macosx.tar.gz files contain a file README with installation instructions.

* aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Nix Packages

Open nixpkg files with nix-install-package. Installation of a Nix package is a one-click installation of package and all its dependencies.

i686-linux: * aterm-2.4? * sdf2-bundle-2.3.2?

powerpc-darwin: * aterm-2.4? * sdf2-bundle-2.3.2?

License

The SDF2 Bundle is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (GNU LGPL) as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details

Contents

SDF2 Bundle %SDFVERSION% consists of: * asc-support-2.2 * asf-library-1.2.1 * asf-support-1.4.2 * error-support-1.0.1 * pgen-2005-01-10 * pt-support-1.4 * sdf-support-2.1.3 * sglr-3.14 * toolbuslib-0.7.1 * tide-support-1.0

SDF2 Bundle %SDFVERSION% requires: * ATerm Library 2.4

News

This is a minor update of the SDF2 Bundle 2.3. It solves an compatibility problem with the latest release of the ATerm Library (2.4). Also, this release adds support for pkg-config.

Released November 4th, 2005.

Download

See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs.

Source tar.gz

* aterm-%ATERMVERSION% * sdf2-bundle-%SDFVERSION%?

Source RPM

* aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Redhat Linux RPM

Redhat 9.0: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

SuSE Linux RPM

SuSE 9.0: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Fedora Core RPM

Fedora Core 2: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Fedora Core 3: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Microsoft Windows Cygwin binaries

The *-cygwin.tar.gz files contain a file README with installation instructions.

* aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Mac OS X binaries

The *-macosx.tar.gz files contain a file README with installation instructions.

* aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

Nix Packages

Open nixpkg files with nix-install-package. Installation of a Nix package is a one-click installation of package and all its dependencies.

i686-linux: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

powerpc-darwin: * aterm-%ATERMVERSION%? * sdf2-bundle-%SDFVERSION%?

License

The SDF2 Bundle is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (GNU LGPL) as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details

Contents

SDF2 Bundle %SDFVERSION% consists of: * asc-support-2.2 * asf-library-1.2.1 * asf-support-1.4.2 * error-support-1.0.1 * pgen-2005-01-10 * pt-support-1.4 * sdf-support-2.1.3 * sglr-3.14 * toolbuslib-0.7.1 * tide-support-1.0

SDF2 Bundle %SDFVERSION% requires: * ATerm Library 2.4.2

News

This is minor update of the SDF2 Bundle 2.3.2. It fixes a compilation problem of the SDF2 Bundle on GCC 4.0.x.

SDF is used by many individuals for many different purposes. This page lists the original applications of SDF and some of its premier applications.

The SDF syntax definition formalism is applied in two projects related to meta programming: the ASF+SDF Meta-Environment and Stratego/XT. Companies and researchers are using these environments for implementing various (source-to-source) program transformations.

ASF+SDF Meta-Environment

The ASF+SDF Meta-Environment is applied for the description of syntax, semantics, analysis, and transformation of (programming) languages and programs written in such programming languages. As the name suggests, SDF originated as a component of the ASF+SDF Meta-Environment.

The Meta-Environment uses SDF to parse input source code and to implement concrete syntax for source code patterns. The patterns are part of rewrite rules (equation) in the ASF formalism. ASF is used to implement source-to-source transformations, source analyses, compilers and interpreters.

More information can be found at http://www.meta-environment.org

Stratego/XT

Stratego/XT is the combination of the The Stratego program transformation language? for strategic rewriting and the XT bundle of transformation tools.

In Stratego/XT SDF is used to define the syntax of (programming) languages and to generate tools like pretty-printers from these definitions. The power of SDF becomes especially clear in the use of concrete object syntax. This technique is applied by many Stratego/XT applications. At the Stratego/XT web you can find a list of applications of Stratego/XT.

Rascal

Rascal is a domain specific language for source code analysis, transformation and generation. It was bootstrapped using SDF and used SDF as a method for implementing parsers for object languages and for concrete syntax patterns. Currently Rascal implements embeds syntax definitions, very much like SDF2 but it is not using the SDF2 implementation anymore. Instead Rascal uses a general scannerless top-down parsing algorithm which is completely Java based.

Software Improvement Group.

The Software Improvement Group is a spin-off of the Dutch National Centre for Mathematics and Computer Science (CWI). The SIG is active in all fields of software renovation: the adaptation, integration and rebuilding of existing software systems. Currently the SIG provides services for documentation heneration, portfolio monitoring, risk assessments and migrations.

First Result

The company First Result applies SDF technology in the ASF+SDF Meta-Environment for the generation of code.

EPITA Research & Development Laboratory

The EPITA Research & Development Laboratory has developed C and C++ grammars in the Transformers Project. Disambiguation of C++ is performed on parse trees. Stratego/XT tools are used to implement parse and abstract syntax tree transformations.

-

The SDF bugzilla system is located here.

Use the components 'sglr' and 'pgen' to report bugs in the core SDF system, 'sdf-meta' for IDE bugs and 'unknown' if you just don't know.

SdfBundle (26 Feb 2008 - 10:27 - r1.5 - ArnoldLankamp?)

Introduction

The SDF2 Bundle is an easy to install collection of packages related to the SDF2 syntax definition formalism. The packages are developed at the CWI. The main packages of the SDF2 Bundle are:

* PGEN - parser generator for SDF2 * SGLR - parser

The bundling related code is maintained by Martin Bravenboer. The packages themselves are maintained by members of SEN1 group at the CWI in the Netherlands.

Download

Release

The current release of the SDF2 Bundle is * SDF2 Bundle 2.3.3

Previous releases: * SDF2 Bundle 2.3.2 * SDF2 Bundle 2.3.1 * sdf2-bundle 2.3 * sdf2-bundle 2.2 * sdf2-bundle 2.1 * sdf2-bundle 2.0.1 * sdf2-bundle 1.6

Latest developments

The latest developments are available at: * Latest unstable sdf2-bundle

SDF is an open-source project under the BSDLicense.

Contributing

  • Please contribute bug reports, patches, and ideas for enhancement using our BugZilla instance. Thank you!
  • If you would like to contribute a new component to the SDF project, or you would like to become a committer on existing SDF software, please contant Jurgen Vinju.
    • We are always interested in finding new colleagues!
    • We are always interested in add-ons and tools that support SDF grammar engineering. If you have made a valuable tool for SDF, we invite you to apply for hosting it on syntax-definition.org.

People

Maintainers

SDF is an open source project, originating from CWI in the Netherlands as part of The Meta-Environment. It is an independent piece of software now, developed by and contributed to by several people from CWI, TU Eindhoven, TU Delft and others.

The current developers/maintainers are:

  • PGEN (SDF parse table generator)
    • Rob Economopoulos
    • Mark van den Brand
    • Jurgen Vinju

  • SGLR (SDF parse table interpreter, "the parser")
    • Rob Economopoulos
    • Jurgen Vinju
    • Mark van den Brand

Also note that SDF depends on other open source software such as the ATerm library and the UPTR (pt-support) parse forest representation library. For details about these components, please visit http://www.meta-environment.org. Any full SDF distribution includes these components, which are also open-source and released under the same license.

Contributors

Several people have contributed significantly to SDF:

  • Merijn de Jonge
  • Paul Klint
  • Eelco Visser
  • Jeroen Scheerder
  • Pieter Olivier
  • Hayco de Jong
  • Taeke Kooiker

Also note that previous versions of SDF (as implemented in Centaur LISP) have been done by other people:

This page is intended as a forum for discussion of all aspects of SDF2.

Tips and Tricks

SDF2 is a rich formalism. Here are some tips and tricks to use its full power.

  • AbstractSyntaxFromSDF2?

Design and Implementation

SDF2 is still under development.

  • Sdf.SDF2o2: Issues and plans for stabilizing the current version

  • Sdf.SDF3: Considerations for the next generation

    • A bad idea to start thinking about this right now, makes people nervous. -- PK

    • Why does it make people nervous? A living language is always changing, users will come up with ways to improve the language. One can ignore such ideas or make an inventory that can be used as a basis for new development. -- EV

    • To keep the discussion about Sdf.SDF2o2 focussed it is good to have an Sdf.SDF3 bin in which we can store ideas that we don't want to think about for a while or ever -- JV

Comparison with other Formalisms

SDF2 is not the first syntax definition formalism ever designed. What are its features? What is different from other formalisms?

  • SDFvsSDF2?: a comparison of Trash.SDFII with its predecessor

  • BNFvsSDF2?: a comparison with 'standard' syntax definitions

  • YACCvsSDF2?: a comparison with the classic

SDF in Context

SDF is used in combination with other formalisms and tools what are the consequences for the language?

  • GrammarAnnotations?

This should become a glossary of terminology related to SDF.

SdfGrammars (30 Jun 2008 - 23:21 - r1.30 - Main.karltk)

Language Version Available in View online
ASF   SDF Library browse?
AsFix   SDF Library browse?
AspectJ 5.0 AspectJ-front? browse?
ATerm   SDF Library browse?
Bibtex   Bibtex-tools?  
Box   GPP browse?
C ad-hoc StrategoXT?/c-tools?  
C C99 EPITA's Transformers Project  
C ANSI-C (?) SDF Library browse?
C++   EPITA's Transformers Project  
C# C# 2.0 csharp-front browse
C Preprocessor   SDF Library browse?
Dot (GraphViz)   Stratego/XT Utils  
ECMAScript Edition 3 (ECMA-262) Under development in ECMAScript-front?  
HQL   WebDSL browse
Java 1.4 Java-front?  
Java 1.5 Java-front? browse?
JavaScript   See ECMAScript  
Jimple   Jimple-front? browse?
JSP   Under development in StringBorg?  
LDAP Search Filters RFC 4515 StringBorg?  
Octave   Under development in the Stratego Octave Compiler  
PHP 4 PHP-front browse?
PHP 5 PHP-front browse?
Prolog   Prolog-tools?  
Shell   Under development in StringBorg?  
Similix (subset of Scheme)   Similix in Stratego  
SQL 92 SQL-front?  
Stratego 0.9 - latest StrategoXT?/stratego-front?  
SDF   SDF Library 1.0 browse?
Tiger   Tiger in Stratego  
URI RFC 1738 Nix  
VDM-SL ISO/IEC 13817-1:1996 VooDooMFront  
XML 1.0 Stratego/XT?  
XPath 1.0 Under development in StringBorg?  

Please add references to grammars you know about!

This list is maintained mostly by Martin Bravenboer and Karl Trygve Kalleberg. Please contact Martin if you cannot find a grammar or one of the links is broken.

Overview

The SDF syntax definition formalism allows a concise and natural expression of the syntax of a context-free language. SDF integrates lexical and context-free syntax in a single syntax formalism. The complete syntax of a language is thus defined in a single definition. SDF supports arbitrary context-free grammars. Therefore, SDF does not restrict the grammars to a subclass of the context-free grammars, such as LL or LALR. SDF syntax definitions can be modular. SDF modules can be reused in different syntax definitions. Disambiguation of grammars is not done by grammar hacking, but by applying special purpose disambiguation facilities in SDF, such as priorities, reject productions, and follow restrictions.

SDF is a declarative language. This means that a syntax definition can be used for different purposes then the usual application: the generation of a parser. Instead, SDF syntax definitions can be used to generate other tools from syntax definitions, e.g. pretty-printers and data type definitions.

Language Features

  • Modules
  • Integration of lexical and context-free syntax
  • Character classes
  • Regular expressions
  • Disambiguation by relative priorities
  • Disambiguation by associativity
  • Disambiguation by preference
  • Aliases
  • Renaming and parameterization of modules
  • Lookahead restrictions
  • Reject productions
  • Case-insensitive keywords

Design Features

Implementers of SDF2 will appreciate its orthogonality. Language features are defined, as much as possible, orthogonal with respect to each other. Despite providing a rich formalism at the level of the user language, the implementation only has to work on a small kernel formalism to which syntax definitions are transformed. Most features are expressed by a translation to the kernel formalism, which is performed by the SDF normalizer.

All symbols are first-class. For example, symbols can be used at the right-hande side of a production. This means that it is possible to define production rules that construct lists of symbols, optional symbols, and even literals.

Implementation Features

Full bibliography of SDF

Language

Applications

  • The Asf+Sdf Meta-Environment: a component-based language laboratory -- CC 2001

Syntax Definitions

Code Generation

Embedding and Modularity

Island Grammars

Related Software

This page lists known third-party software that is available for SDF

IDE

Grammar manipulation

  • SDF weaver is a tool for merging production attributes into a grammar.

Code Generation

  • ApiGen generates C or Java APIs from an SDF syntax definition.

  • Strafunski and Sdf2Haskell provide support for generic programming and language processing in the functional programming language Haskell. Sdf2Haskell implements the derivation of algebraic datatypes from SDF syntax definitions. The Haskell ATerm library can be used to import the results of the SGLR parser.

  • HaGLR is an implementation of Generalized LR parsing in Haskell, and also implements an SDF front-end, which is an extension of the Sdf2Haskell generator.

  • Repleo is a template based code generated based on SDF which features static syntactic correctness.

Pretty-Printer Generation

  • GPP is a collection of tools for pretty-printing and pretty-printer generation. It supports the SDF syntax definition formalism. GPP is part of StrategoXT.
  • Pandora is a pretty printing tool for SDF parse trees. It is included in the 2.6 release of SDF. Older versions are part of The Meta-Environment

Testing

Metrics

  • SdfMetz -- A SDF monitoring tool. From the website: "is a tool to support grammar engineering. It calculates metrics and performs miscellaneus analyzes (like output the grammar graph or view the non-singleton levels of a grammar). This tool was implemented to fill the gap of grammar measuring and analyzes tools."
  • Meta-Environment contains a set of SDF metrics and visualizations, as inspired by SdfMetz.
The design of SDF is the result of a number of requirements. This page discusses these requirements.

Completeness of Syntax Definition

All aspects of the syntax of a language are defined in one specification and in one formalism. This entails that lexical syntax, context-free syntax and disambiguation information are all specified in the same formalism.

In contrast to LEX/YACC where lexical and context-free syntax are defined in separate formalisms.

Orthogonality

Features that are available for some type of expression in one context should be available for that type of expression in another context as well and should mean the same thing.

For example, the iteration construct {A B}* should mean the same thing when used in lexical syntax or context-free syntax.

Modular

It should be possible to extend a syntax definition with additional productions, i.e., syntax definitions should be modular.

Expressive

Frequently occurring syntax patterns such as lists and optionals should not have to be defined every time. In other words SDF should support the common extensions of Extended BNF.

Extensible

The formalism itself should be extensible. It should possible to add some new abstractions to the formalism.

SDF is released under the BSD open-source license.

The latest source release of SDF is:

A binary distribution for Linux/x86 is also available:

The SDF bundle contains:

  • the SGLR parser
  • the SDF2 parser generator
  • the Pandora formatting tool, based on Box.
  • the ATerm library (C library)

Java programmers may be interested in a working Java version of SGLR (the parse table interpreter):

Older releases can be found here.

Name

sdf2table

Synopsis

sdf2table [-m ma[-s] [-i sdf-definition] [-o parse-table]

Description

The utility sdf2table generates a parse table from an SDF syntax definition.

The syntax definition is required to be in the SDF2 format.

Options

input and output
-i file input from file (default: all file arguments)
-o file output to file (default: inputfile.tbl)
-m name parse table is generated for module name (default: Main)
output format
-b   write output in Binary AsFix (BAF) format
-t   write output in plain text format
control operation
-n   only normalization of grammar
-s   check sdf definition and show warnings on stderr
runtime information
-l   display statistic information
-v   verbose mode
meta information
-h   display help information (usage)
-V   reveal program version (i.e. 1.13)

See also

The SDF parser (SGLR) reads a file that contains the parse table. The format for this file and its implementation is a part of the SDF bundle. This part is called ptable-support. You will find a definition of the files format in the source code of the package.

The format is versioned for checking compatibility between the tables generated by the parse table generator and tools that read the tables, such as SGLR.

Version 4 Parse Table Format

The version 4 (now outdated) parse table format is explained here. The newer formats are very similar, but some details are different. For now, please refer to the source code for details.

parse-table(<term>,<term>,<term>,states([<list>]),priorities(<term>))
* The first <term> is a version number, currently 4. * The second <term> is the number of the initial state, normally 0. * The third <term> is a list of labels of the form label(<term>,<int>), where <term> represents a production rule and <int> the label number. The production rule is represented as an ATerm and has, e.g., the form: prod([sort("<START>"),char-class([256])],sort("<Start>"),no-attrs) * The states have the form: state-rec(<int>,[<list>],[<list>]) where <int> represents the state number, the first list the list of gotos, and the second list the list of actions. * A goto item looks like goto([<list>],<int>), this list is a list of single characters, character ranges, and/or label numbers. The <int> is the state number to which the parser has to jump. * A action item looks like action([<list>],[<list>]), where the first list is a list of single characters and/or character ranges. The second list are the actions that have to be performed: * reduce(<int>,<int>,<int>): first <int> represents the number of members in of the production rule with label given as second <int>, and the last <int> represent that "status" of a production rule, prefer, avoid, reject, or normal. * reduce(<int>,<int>,<int>,<term>): the <term> represents a lookahead set greater than one. Lookaheads of more than one character are performed dynamically. * shift(<int>): the <int> represent the new state after shifting the current character. * accept * The priorities is a list of relations between 2 production rules: * left-prio(<int>,<int>) * right-prio(<int>,<int>) * non-assoc-prio(<int>,<int>) * gtr-prio(<int>,<int>) where the <int>s are the labels of the production rules involved. left, right, and non-assoc are associativity attributes used within the Tools.SDF definition. gtr is the priority relation.

Web TWiki Site Map Use to...
Main Home of Main web Search Main web Recent changes in the Main web Get notified of changes to the Main web The Main web is dedicated to the maintenance of this website. This is the place to discuss meta-issues such as what style to use, how best to organize a survey, what the ideal topic size is, how to refer to papers, what the preferred layout of the site should be, etc. ...
TWiki Home of TWiki web Search TWiki web Recent changes in the TWiki web Get notified of changes to the TWiki web Welcome, Registration, and other StartingPoints; TWiki history & Wiki style; All the docs... ...discover TWiki details, and how to start your own site.
Gmt Home of Gmt web Search Gmt web Recent changes in the Gmt web Get notified of changes to the Gmt web Generative Model Transformer
Gpce Home of Gpce web Search Gpce web Recent changes in the Gpce web Get notified of changes to the Gpce web
Octave Home of Octave web Search Octave web Recent changes in the Octave web Get notified of changes to the Octave web The Stratego web is the home of Stratego, a language for program transformation based on the paradigm of rewriting strategies. The aim of this language is to provide an expressive and declarative language for expressing all kinds of program transformations. The web includes publications on Stratego, download of the StrategoCompiler, documentation, and descriptions of applications. ...
Sandbox Home of Sandbox web Search Sandbox web Recent changes in the Sandbox web Get notified of changes to the Sandbox web Sandbox test area with all features enabled. ...experiment in an unrestricted hands-on web.
Sdf Home of Sdf web Search Sdf web Recent changes in the Sdf web Get notified of changes to the Sdf web The Sdf web is dedicated to the modular syntax definition formalism SDF. Here you can find implementations, pointers to download pages, syntax definitions for common languages, discussions about new features and implementatios of SDF, and tips and tricks for using the formalism. ...
SdfBackup Home of SdfBackup web Search SdfBackup web Recent changes in the SdfBackup web Get notified of changes to the SdfBackup web The Sdf web is dedicated to the modular syntax definition formalism SDF. Here you can find implementations, pointers to download pages, syntax definitions for common languages, discussions about new features and implementatios of SDF, and tips and tricks for using the formalism. ...
Stratego Home of Stratego web Search Stratego web Recent changes in the Stratego web Get notified of changes to the Stratego web The Stratego web is the home of Stratego, a language for program transformation based on the paradigm of rewriting strategies. The aim of this language is to provide an expressive and declarative language for expressing all kinds of program transformations. The web includes publications on Stratego, download of the StrategoCompiler, documentation, and descriptions of applications. ...
Sts Home of Sts web Search Sts web Recent changes in the Sts web Get notified of changes to the Sts web The Sofware Transformation Systems wiki
Tiger Home of Tiger web Search Tiger web Recent changes in the Tiger web Get notified of changes to the Tiger web Home of the Tiger in Stratego project, which is concerned with the exploration of transformation techniques in compilation using an implementation of a Tiger compiler. ...
Tools Home of Tools web Search Tools web Recent changes in the Tools web Get notified of changes to the Tools web The Tools web is the home of the XT? bundle of program transformation tools. XT is an open framework for program transformation based on the ATerm format for exchange of programs between tools. The bundle includes packages for parsing, pretty-printing, term rewriting, and grammar recovery. It also contains a distribution of the SDF2? GrammarBase?. The OnlinePackageBase is an open collection of packages for program transformation supporting package bundling on demand. ...
Transform Home of Transform web Search Transform web Recent changes in the Transform web Get notified of changes to the Transform web The Transform web is an attempt to get an overview of program transformation research and application. In the first place the web is a collection of resources such as pointers to researchers, conferences, journals, summaries and reviews of papers, and tools for implementing transformation systems. In the second place the Transform web attempts to bring structure in the world of program transformation by means of categories, taxonomies such as the TransformationTaxonomy, and entry points such as the ReengineeringWiki and the DeCompilation page. ...
You can use color coding by web for identification and reference. This table is updated automatically based on WebPreferences settings of the individual webs. Contact webmaster@strategoxt.org if you need a separate collaboration web for your team. See also AdminTools.
Legend of icons:   Home of web = Go to the home of the web
Search web = Search the web
  Recent changes in the web = See recent changes in the web
Get notified of changes to the web = Subscribe to get notified of changes by e-mail
Web Header Menu 07 Jun 2013 - 09:21 TWiki Guest
Web Left Bar 20 Apr 2011 - 13:32 Lennart Kats
Development Tools 20 Apr 2011 - 13:31 Lennart Kats
Sdf Publications 20 Apr 2011 - 13:24 Lennart Kats
Sdf Development 20 Apr 2011 - 13:03 Lennart Kats
Sdf Related Software 20 Apr 2011 - 13:03 Lennart Kats
Sdf Software 20 Apr 2011 - 13:02 Lennart Kats
Sdf Documentation 20 Apr 2011 - 13:02 Lennart Kats
Web Home 20 Apr 2011 - 13:01 Lennart Kats
Web News 20 Apr 2011 - 12:57 Lennart Kats
Sdf Applications 30 Nov 2010 - 14:31 Jurgen Vinju
Old Releases 30 Nov 2010 - 14:29 Jurgen Vinju
Sdf Demos 17 Sep 2008 - 15:28 Jurgen Vinju
Sdf Grammars 30 Jun 2008 - 23:21 karltk?
Sglr Parse Table Format 30 Jun 2008 - 18:36 karltk?
SGLR 30 Jun 2008 - 09:40 karltk?
Sdf 2 Bundle Release 232 15 Mar 2008 - 22:53 Martin Bravenboer
Sdf 2 Bundle Release 233 15 Mar 2008 - 22:27 Martin Bravenboer
Mailing List 11 Mar 2008 - 21:37 Jurgen Vinju
Sdf Bugs 11 Mar 2008 - 20:54 Jurgen Vinju
BSDLicense 11 Mar 2008 - 20:41 Jurgen Vinju
AQuick Introduction To SDF 11 Mar 2008 - 20:29 Jurgen Vinju
Sdf Bundle 26 Feb 2008 - 10:27 Arnold Lankamp?
Sdf 2 Bundle Release 16 26 Feb 2008 - 10:24 Arnold Lankamp?
Sdf 2 Bundle Release 201 26 Feb 2008 - 10:24 Arnold Lankamp?
Sdf 2 Bundle Release 21 26 Feb 2008 - 10:24 Arnold Lankamp?
Sdf 2 Bundle Release 23 26 Feb 2008 - 10:23 Arnold Lankamp?
Sdf 2 Bundle Release 22 26 Feb 2008 - 10:23 Arnold Lankamp?
Sdf 2 Bundle Release 231 26 Feb 2008 - 10:23 Arnold Lankamp?
Web Preferences 25 Feb 2008 - 14:11 Arnold Lankamp?
Web Statistics 16 Dec 2007 - 01:12 TWiki Guest
Sdf Language 26 Nov 2007 - 22:37 Jurgen Vinju
Web Menu 29 Jan 2007 - 22:14 paulk?
Sdf Glossary 24 Dec 2004 - 00:59 Martin Bravenboer
Web Changes 22 Dec 2004 - 17:39 Martin Bravenboer
Web Tools 29 Nov 2004 - 17:38 Martin Bravenboer
Generalized LR 18 Jul 2004 - 14:38 Martin Bravenboer
Grammar Testing 25 Feb 2004 - 11:15 Martin Bravenboer
Sdf To Table 17 Feb 2004 - 11:35 Martin Bravenboer
PGEN 17 Feb 2004 - 11:33 Martin Bravenboer
Web Rss 09 Feb 2004 - 16:04 Martin Bravenboer
Sdf Requirements 09 Feb 2004 - 14:42 Martin Bravenboer
SDFby Example 09 Feb 2004 - 14:41 Martin Bravenboer
SDF2 o 2 09 Feb 2004 - 14:40 Martin Bravenboer
SDF2 Publications 09 Feb 2004 - 14:39 Martin Bravenboer
SDF3 09 Feb 2004 - 13:53 Martin Bravenboer
Sdf Forum 09 Feb 2004 - 13:29 Martin Bravenboer
Disambiguation In SDF2 09 Feb 2004 - 13:21 Martin Bravenboer
Disambiguation Filters For Scannerless Gener... 09 Feb 2004 - 13:17 Martin Bravenboer
Lexical Versus Context Free Restrictions 09 Feb 2004 - 13:01 Martin Bravenboer
Number of topics: 50
Topic Changed By
WebHeaderMenu? 07 Jun 2013 - 09:21 TWikiGuest
WebLeftBar 20 Apr 2011 - 13:32 LennartKats
DevelopmentTools? 20 Apr 2011 - 13:31 LennartKats
SdfPublications? 20 Apr 2011 - 13:24 LennartKats
SdfDevelopment? 20 Apr 2011 - 13:03 LennartKats
SdfRelatedSoftware? 20 Apr 2011 - 13:03 LennartKats
SdfSoftware? 20 Apr 2011 - 13:02 LennartKats
SdfDocumentation? 20 Apr 2011 - 13:02 LennartKats
WebHome 20 Apr 2011 - 13:01 LennartKats
WebNews 20 Apr 2011 - 12:57 LennartKats
SdfApplications? 30 Nov 2010 - 14:31 JurgenVinju
OldReleases? 30 Nov 2010 - 14:29 JurgenVinju
SdfDemos? 17 Sep 2008 - 15:28 JurgenVinju
SdfGrammars? 30 Jun 2008 - 23:21 Main.karltk
SglrParseTableFormat? 30 Jun 2008 - 18:36 Main.karltk
SGLR? 30 Jun 2008 - 09:40 Main.karltk
Sdf2BundleRelease232? 15 Mar 2008 - 22:53 MartinBravenboer
Sdf2BundleRelease233? 15 Mar 2008 - 22:27 MartinBravenboer
MailingList 11 Mar 2008 - 21:37 JurgenVinju
SdfBugs? 11 Mar 2008 - 20:54 JurgenVinju
BSDLicense? 11 Mar 2008 - 20:41 JurgenVinju
AQuickIntroductionToSDF? 11 Mar 2008 - 20:29 JurgenVinju
SdfBundle? 26 Feb 2008 - 10:27 ArnoldLankamp?
Sdf2BundleRelease16? 26 Feb 2008 - 10:24 ArnoldLankamp?
Sdf2BundleRelease201? 26 Feb 2008 - 10:24 ArnoldLankamp?
Sdf2BundleRelease21? 26 Feb 2008 - 10:24 ArnoldLankamp?
Sdf2BundleRelease23? 26 Feb 2008 - 10:23 ArnoldLankamp?
Sdf2BundleRelease22? 26 Feb 2008 - 10:23 ArnoldLankamp?
Sdf2BundleRelease231? 26 Feb 2008 - 10:23 ArnoldLankamp?
WebPreferences 25 Feb 2008 - 14:11 ArnoldLankamp?
WebStatistics 16 Dec 2007 - 01:12 TWikiGuest
SdfLanguage? 26 Nov 2007 - 22:37 JurgenVinju
WebMenu? 29 Jan 2007 - 22:14 Main.paulk
SdfGlossary? 24 Dec 2004 - 00:59 MartinBravenboer
WebChanges 22 Dec 2004 - 17:39 MartinBravenboer
WebTools 29 Nov 2004 - 17:38 MartinBravenboer
GeneralizedLR? 18 Jul 2004 - 14:38 MartinBravenboer
GrammarTesting? 25 Feb 2004 - 11:15 MartinBravenboer
SdfToTable? 17 Feb 2004 - 11:35 MartinBravenboer
PGEN? 17 Feb 2004 - 11:33 MartinBravenboer
WebRss 09 Feb 2004 - 16:04 MartinBravenboer
SdfRequirements? 09 Feb 2004 - 14:42 MartinBravenboer
SDFbyExample? 09 Feb 2004 - 14:41 MartinBravenboer
SDF2o2? 09 Feb 2004 - 14:40 MartinBravenboer
SDF2Publications? 09 Feb 2004 - 14:39 MartinBravenboer
SDF3? 09 Feb 2004 - 13:53 MartinBravenboer
SdfForum? 09 Feb 2004 - 13:29 MartinBravenboer
DisambiguationInSDF2? 09 Feb 2004 - 13:21 MartinBravenboer
DisambiguationFiltersForScannerlessGeneralizedLRParsers? 09 Feb 2004 - 13:17 MartinBravenboer
LexicalVersusContextFreeRestrictions? 09 Feb 2004 - 13:01 MartinBravenboer
ScannerlessGeneralizedLR? 30 Jan 2004 - 16:55 MartinBravenboer
GrammarBase? 24 Jan 2004 - 17:32 MartinBravenboer
WebNotify 24 Jan 2004 - 16:04 MartinBravenboer
UpdateWebPages 20 Sep 2002 - 08:37 EelcoVisser
SiteMap 27 Aug 2002 - 08:00 EelcoVisser
WebChanges500 23 Apr 2002 - 20:09 EelcoVisser
WebChanges200 23 Apr 2002 - 20:05 EelcoVisser
WebChanges100 23 Apr 2002 - 19:53 EelcoVisser
WebIndex 23 Jan 2002 - 14:20 EelcoVisser
WebSearch 08 Aug 2001 - 05:26 PeterThoeny
Topic Changed By
WebHeaderMenu? 07 Jun 2013 - 09:21 TWikiGuest
WebLeftBar 20 Apr 2011 - 13:32 LennartKats
DevelopmentTools? 20 Apr 2011 - 13:31 LennartKats
SdfPublications? 20 Apr 2011 - 13:24 LennartKats
SdfDevelopment? 20 Apr 2011 - 13:03 LennartKats
SdfRelatedSoftware? 20 Apr 2011 - 13:03 LennartKats
SdfSoftware? 20 Apr 2011 - 13:02 LennartKats
SdfDocumentation? 20 Apr 2011 - 13:02 LennartKats
WebHome 20 Apr 2011 - 13:01 LennartKats
WebNews 20 Apr 2011 - 12:57 LennartKats
SdfApplications? 30 Nov 2010 - 14:31 JurgenVinju
OldReleases? 30 Nov 2010 - 14:29 JurgenVinju
SdfDemos? 17 Sep 2008 - 15:28 JurgenVinju
SdfGrammars? 30 Jun 2008 - 23:21 Main.karltk
SglrParseTableFormat? 30 Jun 2008 - 18:36 Main.karltk
SGLR? 30 Jun 2008 - 09:40 Main.karltk
Sdf2BundleRelease232? 15 Mar 2008 - 22:53 MartinBravenboer
Sdf2BundleRelease233? 15 Mar 2008 - 22:27 MartinBravenboer
MailingList 11 Mar 2008 - 21:37 JurgenVinju
SdfBugs? 11 Mar 2008 - 20:54 JurgenVinju
BSDLicense? 11 Mar 2008 - 20:41 JurgenVinju
AQuickIntroductionToSDF? 11 Mar 2008 - 20:29 JurgenVinju
SdfBundle? 26 Feb 2008 - 10:27 ArnoldLankamp?
Sdf2BundleRelease16? 26 Feb 2008 - 10:24 ArnoldLankamp?
Sdf2BundleRelease201? 26 Feb 2008 - 10:24 ArnoldLankamp?
Sdf2BundleRelease21? 26 Feb 2008 - 10:24 ArnoldLankamp?
Sdf2BundleRelease23? 26 Feb 2008 - 10:23 ArnoldLankamp?
Sdf2BundleRelease22? 26 Feb 2008 - 10:23 ArnoldLankamp?
Sdf2BundleRelease231? 26 Feb 2008 - 10:23 ArnoldLankamp?
WebPreferences 25 Feb 2008 - 14:11 ArnoldLankamp?
WebStatistics 16 Dec 2007 - 01:12 TWikiGuest
SdfLanguage? 26 Nov 2007 - 22:37 JurgenVinju
WebMenu? 29 Jan 2007 - 22:14 Main.paulk
SdfGlossary? 24 Dec 2004 - 00:59 MartinBravenboer
WebChanges 22 Dec 2004 - 17:39 MartinBravenboer
WebTools 29 Nov 2004 - 17:38 MartinBravenboer
GeneralizedLR? 18 Jul 2004 - 14:38 MartinBravenboer
GrammarTesting? 25 Feb 2004 - 11:15 MartinBravenboer
SdfToTable? 17 Feb 2004 - 11:35 MartinBravenboer
PGEN? 17 Feb 2004 - 11:33 MartinBravenboer
WebRss 09 Feb 2004 - 16:04 MartinBravenboer
SdfRequirements? 09 Feb 2004 - 14:42 MartinBravenboer
SDFbyExample? 09 Feb 2004 - 14:41 MartinBravenboer
SDF2o2? 09 Feb 2004 - 14:40 MartinBravenboer
SDF2Publications? 09 Feb 2004 - 14:39 MartinBravenboer
SDF3? 09 Feb 2004 - 13:53 MartinBravenboer
SdfForum? 09 Feb 2004 - 13:29 MartinBravenboer
DisambiguationInSDF2? 09 Feb 2004 - 13:21 MartinBravenboer
DisambiguationFiltersForScannerlessGeneralizedLRParsers? 09 Feb 2004 - 13:17 MartinBravenboer
LexicalVersusContextFreeRestrictions? 09 Feb 2004 - 13:01 MartinBravenboer
ScannerlessGeneralizedLR? 30 Jan 2004 - 16:55 MartinBravenboer
GrammarBase? 24 Jan 2004 - 17:32 MartinBravenboer
WebNotify 24 Jan 2004 - 16:04 MartinBravenboer
UpdateWebPages 20 Sep 2002 - 08:37 EelcoVisser
SiteMap 27 Aug 2002 - 08:00 EelcoVisser
WebChanges500 23 Apr 2002 - 20:09 EelcoVisser
WebChanges200 23 Apr 2002 - 20:05 EelcoVisser
WebChanges100 23 Apr 2002 - 19:53 EelcoVisser
WebIndex 23 Jan 2002 - 14:20 EelcoVisser
WebSearch 08 Aug 2001 - 05:26 PeterThoeny
Topic Changed By
WebHeaderMenu? 07 Jun 2013 - 09:21 TWikiGuest
WebLeftBar 20 Apr 2011 - 13:32 LennartKats
DevelopmentTools? 20 Apr 2011 - 13:31 LennartKats
SdfPublications? 20 Apr 2011 - 13:24 LennartKats
SdfDevelopment? 20 Apr 2011 - 13:03 LennartKats
SdfRelatedSoftware? 20 Apr 2011 - 13:03 LennartKats
SdfSoftware? 20 Apr 2011 - 13:02 LennartKats
SdfDocumentation? 20 Apr 2011 - 13:02 LennartKats
WebHome 20 Apr 2011 - 13:01 LennartKats
WebNews 20 Apr 2011 - 12:57 LennartKats
SdfApplications? 30 Nov 2010 - 14:31 JurgenVinju
OldReleases? 30 Nov 2010 - 14:29 JurgenVinju
SdfDemos? 17 Sep 2008 - 15:28 JurgenVinju
SdfGrammars? 30 Jun 2008 - 23:21 Main.karltk
SglrParseTableFormat? 30 Jun 2008 - 18:36 Main.karltk
SGLR? 30 Jun 2008 - 09:40 Main.karltk
Sdf2BundleRelease232? 15 Mar 2008 - 22:53 MartinBravenboer
Sdf2BundleRelease233? 15 Mar 2008 - 22:27 MartinBravenboer
MailingList 11 Mar 2008 - 21:37 JurgenVinju
SdfBugs? 11 Mar 2008 - 20:54 JurgenVinju
BSDLicense? 11 Mar 2008 - 20:41 JurgenVinju
AQuickIntroductionToSDF? 11 Mar 2008 - 20:29 JurgenVinju
SdfBundle? 26 Feb 2008 - 10:27 ArnoldLankamp?
Sdf2BundleRelease16? 26 Feb 2008 - 10:24 ArnoldLankamp?
Sdf2BundleRelease201? 26 Feb 2008 - 10:24 ArnoldLankamp?
Sdf2BundleRelease21? 26 Feb 2008 - 10:24 ArnoldLankamp?
Sdf2BundleRelease23? 26 Feb 2008 - 10:23 ArnoldLankamp?
Sdf2BundleRelease22? 26 Feb 2008 - 10:23 ArnoldLankamp?
Sdf2BundleRelease231? 26 Feb 2008 - 10:23 ArnoldLankamp?
WebPreferences 25 Feb 2008 - 14:11 ArnoldLankamp?
WebStatistics 16 Dec 2007 - 01:12 TWikiGuest
SdfLanguage? 26 Nov 2007 - 22:37 JurgenVinju
WebMenu? 29 Jan 2007 - 22:14 Main.paulk
SdfGlossary? 24 Dec 2004 - 00:59 MartinBravenboer
WebChanges 22 Dec 2004 - 17:39 MartinBravenboer
WebTools 29 Nov 2004 - 17:38 MartinBravenboer
GeneralizedLR? 18 Jul 2004 - 14:38 MartinBravenboer
GrammarTesting? 25 Feb 2004 - 11:15 MartinBravenboer
SdfToTable? 17 Feb 2004 - 11:35 MartinBravenboer
PGEN? 17 Feb 2004 - 11:33 MartinBravenboer
WebRss 09 Feb 2004 - 16:04 MartinBravenboer
SdfRequirements? 09 Feb 2004 - 14:42 MartinBravenboer
SDFbyExample? 09 Feb 2004 - 14:41 MartinBravenboer
SDF2o2? 09 Feb 2004 - 14:40 MartinBravenboer
SDF2Publications? 09 Feb 2004 - 14:39 MartinBravenboer
SDF3? 09 Feb 2004 - 13:53 MartinBravenboer
SdfForum? 09 Feb 2004 - 13:29 MartinBravenboer
DisambiguationInSDF2? 09 Feb 2004 - 13:21 MartinBravenboer
DisambiguationFiltersForScannerlessGeneralizedLRParsers? 09 Feb 2004 - 13:17 MartinBravenboer
LexicalVersusContextFreeRestrictions? 09 Feb 2004 - 13:01 MartinBravenboer
ScannerlessGeneralizedLR? 30 Jan 2004 - 16:55 MartinBravenboer
GrammarBase? 24 Jan 2004 - 17:32 MartinBravenboer
WebNotify 24 Jan 2004 - 16:04 MartinBravenboer
UpdateWebPages 20 Sep 2002 - 08:37 EelcoVisser
SiteMap 27 Aug 2002 - 08:00 EelcoVisser
WebChanges500 23 Apr 2002 - 20:09 EelcoVisser
WebChanges200 23 Apr 2002 - 20:05 EelcoVisser
WebChanges100 23 Apr 2002 - 19:53 EelcoVisser
WebIndex 23 Jan 2002 - 14:20 EelcoVisser
WebSearch 08 Aug 2001 - 05:26 PeterThoeny
News? Download? ReleaseNotes? Documentation?

Menu

* Home * Download? * Documentation? * FAQ? * Screenshots?

Community

* License? * Contributing? * MailingLists * ReleaseNotes? * OpenSource?

Development

* API * Continuous build * Bugs * DevelopmentTools

Technologies (under construction)

* ApiGen? * ASF+SDF? * ATerms? * Rscript? * SDF? * Sisyphus? * ToolBus?

2008-06-10 Terence Parr - author of ANTLR - visits CWI to present ongoing work on grammar reuse.

2008-06-09 SDF 2.6.2 source released - a special intermediate release that solves licensing issues.

2008-03-11 http://www.syntax-definition.org is now the official website for SDF. New releases and documentation will be published by the maintainers of SDF on this site.

2008-02-29 SDF 2.6 was released. This release contains several bugfixes and an improved parsing algorithm based on 'RNGLR'. It was released early to facilitate the possible inclusion of SDF in Eclipse IMP. This is now being evaluated.

2007-11-26 Updated the SDF website with new release info. In the meantime much has happened.

  • SDF 2.5.1 has been released.
  • Rob Economopoulos has refactored and documented the C implementation of SGLR.
  • Rob Economopoulos and Jurgen Vinju have fitted the RNGLR algorithm into SGLR.
  • Karl Trygve Kalleberg has started on a Java version of SGLR.
  • Meta-Environment splitted sdf-meta package of ASF+SDF Meta-Environment to make it ASF independent.

2005-11-04 SDF2 Bundle 2.3.3 is now available. This is a minor update, fixing some compilation issues at GCC 4.0.x.

2005-08-26 SDF2 Bundle 2.3.2 is now available! This release fixes some issues of the previous SDF2 Bundle releases with the new ATerm library. As usual, you can download the source tarball, RPM, or binary packages for Cygwin and Mac OS X.

2005-02-09 Added Sdf2Haskell and HaGLR to the SDF software page.

2005-01-10 SDF2 Bundle 2.3 is now available! As usual, you can download the source tarball, RPM, or binary packages for Cygwin and Mac OS X.

2004-07-04 SDF2 Bundle 2.2 is now available as source tarball, RPM and binary packages for Cygwin and Mac OS X.

2004-05-30 SDF2 Bundle 2.1 is now available. This is an easy to install (tarball, rpm and source rpm) bundle of SDF related packages in the ASF+SDF MetaEnvironment 1.5.

2004-05-10 ASF+SDF MetaEnvironment 1.5 has been released. This release includes updates of the SDF packages, namely PGEN 2.1 and SGLR 3.11, featuring improved error reporting, much clearer definition of start symbols, and miscellaneous further simplifications of SDF. (announcement).

2004-05-08
Paper: 'Concrete syntax for objects' describes the MetaBorg approach, which is based on SDF and Stratego, to embedding and assimilation of domain-specific languages in a host language illustrated with several extensions of Java. (Accepted for OOPSLA'04.)

2004-01-25

http://syntax-definition.org points to the SDF web!

2004-01-24

Created some minimal topics in effort to start providing an overview of the available information on SDF.

2003-17-10

PGEN 2.0 has been released. This release kicks off the simplication of SDF2 by removing unnecessary and unclear features from the language. (announcement)

2002-01-23

Creation of WebNews for default web

WebNotify is a subscription service to be automatically notified by email when topics change in the TWiki.Sdf web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe to the service, please put yourself on the list below. The format is: 3 spaces * Main.yourWikiName - yourEmailAddress

Note: It is helpful to insert your name in alphabetical order (by first name -- ignore the "Main.") -- then you can find your name (or not) more easily if you wish to remove it or confirm that you are on the list.

Related topics: TWikiUsers, TWikiRegistration

WebPreferences (25 Feb 2008 - 14:11 - r1.11 - ArnoldLankamp?)
The following settings are web preferences of the TWiki.Sdf web. These preferences overwrite the site-level preferences in TWikiPreferences, and can be overwritten by user preferences (your personal topic, i.e. TWikiGuest in the TWiki.Main web)

Preferences:

* Set WEBTITLE = SDF: Modular Syntax Definition Formalism * Set SHORTWEBTITLE = SDF * Set WEBLOGO = * Set PDFICON = * Set DIST = http://nix.cs.uu.nl/dist/stratego

* Web specific background color: (Pick a lighter one of the StandardColors) * Set WEBBGCOLOR = #EEEEAA

* List of topics of the TWiki.Sdf web: * Set WEBTOPICLIST =

* Web specific background color: (Pick a lighter one of the StandardColors) * Set WEBCONTENTBGCOLOR = #EEEEAA

* List this web in the SiteMap: * If yes, Set SITEMAPLIST = on, and add the "what" and "use to..." description for the site map. Make sure to list only links that include the name of the web, e.g. Sdf.Topic links. * Set SITEMAPLIST = on * Set SITEMAPWHAT = The Sdf web is dedicated to the modular syntax definition formalism SDF. Here you can find implementations, pointers to download pages, syntax definitions for common languages, discussions about new features and implementatios of SDF, and tips and tricks for using the formalism. * Set SITEMAPUSETO = ...

* Exclude web from a web="all" search: (Set to on for hidden webs) * Set NOSEARCHALL =

* Default template for new topics and form(s) for this web: * WebTopicEditTemplate?: Default template for new topics in this web. (Site-level is used if topic does not exist) * TWiki.WebTopicEditTemplate: Site-level default template * TWikiForms: How to enable form(s) * Set WEBFORMS =

* Users or groups who are not / are allowed to view / change / rename topics in the Sdf web: (See TWikiAccessControl) * Set DENYWEBVIEW = * Set ALLOWWEBVIEW = * Set DENYWEBCHANGE = TWikiGuest * Set ALLOWWEBCHANGE = TWikiAdminGroup * Set DENYWEBRENAME = TWikiGuest * Set ALLOWWEBRENAME = TWikiAdminGroup

* Users or groups allowed to change or rename this WebPreferences topic: (I.e. TWikiAdminGroup) * Set ALLOWTOPICCHANGE = TWikiAdminGroup * Set ALLOWTOPICRENAME = TWikiAdminGroup

* Web preferences that are not allowed to be overridden by user preferences: * Set FINALPREFERENCES = WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME

Notes: * A preference is defined as:
6 spaces * Set NAME = value
Example: * Set WEBBGCOLOR = #FFFFC0 * Preferences are used as TWikiVariables by enclosing the name in percent signs. Example: * When you write variable #FFD8AA , it gets expanded to #FFD8AA . * The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since =Copyright © 1999-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback= uses the webmaster@strategoxt.org variable. * You can introduce new preferences variables and use them in your topics and templates. There is no need to change the TWiki engine (Perl scripts).

Related Topics: * TWikiPreferences has site-level preferences. * TWikiUsers has a list of user topics. User topics can have optional user preferences. * TWikiVariables has a list of common %VARIABLES%. * TWikiAccessControl explains how to restrict access by users or groups.

TWiki's Sdf web /view/Sdf SDF -- Modular Syntax Definition Formalism en-us Copyright 2020 by contributing authors Eelco Visser [webmaster@strategoxt.org] Eelco Visser [webmaster@strategoxt.org] TWiki TWiki.Sdf TWiki home.Sdf /view/Sdf /pub/TWiki/TWikiLogos/twikiRobot46x50.gif DevelopmentTools /view/Sdf/DevelopmentTools?t=2011-04-20T13:31Z The source code of SDF is split in several components. Each component implements the same build interface, and adheres to certain coding standards. Programming environment ... (last changed by LennartKats) 2011-04-20T13:31Z LennartKats 1.2 updated major /rdiff/Sdf/DevelopmentTools /rdiff/Sdf/DevelopmentTools SdfApplications /view/Sdf/SdfApplications?t=2010-11-30T14:31Z SDF is used by many individuals for many different purposes. This page lists the original applications of SDF and some of its premier applications. The SDF syntax ... (last changed by JurgenVinju) 2010-11-30T14:31Z JurgenVinju 1.6 updated major /rdiff/Sdf/SdfApplications /rdiff/Sdf/SdfApplications OldReleases /view/Sdf/OldReleases?t=2010-11-30T14:29Z These are older releases of SDF; if you need something even older contact mailto:users@syntax-definition.org SDF 2.6 source bundle SDF 2.5.1 source bundle SDF2 Bundle ... (last changed by JurgenVinju) 2010-11-30T14:29Z JurgenVinju 1.2 updated major /rdiff/Sdf/OldReleases /rdiff/Sdf/OldReleases SGLR /view/Sdf/SGLR?t=2008-06-30T09:40Z Description SGLR, Scannerless Generalized LR Parser, is an implementation of Tomita's LR algorithm with extensions for scannerless parsing. The SGLR package contains ... (last changed by karltk) 2008-06-30T09:40Z karltk 1.6 updated major /rdiff/Sdf/SGLR /rdiff/Sdf/SGLR Sdf2BundleRelease232 /view/Sdf/Sdf2BundleRelease232?t=2008-03-15T22:53Z Released August 26, 2005. Download See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs. Source tar ... (last changed by MartinBravenboer) 2008-03-15T22:53Z MartinBravenboer 1.4 updated major /rdiff/Sdf/Sdf2BundleRelease232 /rdiff/Sdf/Sdf2BundleRelease232 Sdf2BundleRelease233 /view/Sdf/Sdf2BundleRelease233?t=2008-03-15T22:27Z Released November 4th, 2005. Download See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs. Source ... (last changed by MartinBravenboer) 2008-03-15T22:27Z MartinBravenboer 1.4 updated major /rdiff/Sdf/Sdf2BundleRelease233 /rdiff/Sdf/Sdf2BundleRelease233 MailingList /view/Sdf/MailingList?t=2008-03-11T21:37Z The SDF users list (brand new) is for all matters concerning SDF usage subscribe unsubscribe mail your question, idea, issue The SDF developers list is reserved for ... (last changed by JurgenVinju) 2008-03-11T21:37Z JurgenVinju 1.4 updated major /rdiff/Sdf/MailingList /rdiff/Sdf/MailingList BSDLicense /view/Sdf/BSDLicense?t=2008-03-11T20:41Z The SDF open-source software license (BSD) Copyright (c) 2002-2007, CWI All rights reserved. Redistribution and use in source and binary forms, with or without modification ... (last changed by JurgenVinju) 2008-03-11T20:41Z JurgenVinju 1.1 updated major /rdiff/Sdf/BSDLicense /rdiff/Sdf/BSDLicense Sdf2BundleRelease16 /view/Sdf/Sdf2BundleRelease16?t=2008-02-26T10:24Z SDF2 Bundle 1.6 Contents sdf2-bundle 1.6 consists of: asc-support-1.6 asf-support-1.0 sdf-support-1.0 pt-support-0.11 sglr-3.9 toolbuslib-0.4 pgen-1.6 Download See ... (last changed by ArnoldLankamp) 2008-02-26T10:24Z ArnoldLankamp 1.3 updated major /rdiff/Sdf/Sdf2BundleRelease16 /rdiff/Sdf/Sdf2BundleRelease16 Sdf2BundleRelease201 /view/Sdf/Sdf2BundleRelease201?t=2008-02-26T10:24Z SDF2 Bundle 2.0.1 Contents sdf2-bundle 2.0.1 consists of: asc-support-1.8 asf-support-1.2 sdf-support-2.0 pt-support-1.0 sglr-3.10.2 toolbuslib-0.5.1 pgen-2.0 Download ... (last changed by ArnoldLankamp) 2008-02-26T10:24Z ArnoldLankamp 1.3 updated major /rdiff/Sdf/Sdf2BundleRelease201 /rdiff/Sdf/Sdf2BundleRelease201 Sdf2BundleRelease21 /view/Sdf/Sdf2BundleRelease21?t=2008-02-26T10:24Z SDF2 Bundle 2.1 Contents sdf2-bundle 2.1 consists of: asc-support-1.9 asf-library-1.0 asf-support-1.3 error-support-0.1.1 pgen-2.1 pt-support-1.1 sdf-support-2.1 ... (last changed by ArnoldLankamp) 2008-02-26T10:24Z ArnoldLankamp 1.4 updated major /rdiff/Sdf/Sdf2BundleRelease21 /rdiff/Sdf/Sdf2BundleRelease21 Sdf2BundleRelease23 /view/Sdf/Sdf2BundleRelease23?t=2008-02-26T10:23Z Released January 10, 2005. Download See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs. Source ... (last changed by ArnoldLankamp) 2008-02-26T10:23Z ArnoldLankamp 1.12 updated major /rdiff/Sdf/Sdf2BundleRelease23 /rdiff/Sdf/Sdf2BundleRelease23 Sdf2BundleRelease22 /view/Sdf/Sdf2BundleRelease22?t=2008-02-26T10:23Z Released July 04, 2004. The SDF2 Bundle is an easy to install collection of packages that implement the modular SDF syntax definition formalism. Contents SDF2 Bundle ... (last changed by ArnoldLankamp) 2008-02-26T10:23Z ArnoldLankamp 1.8 updated major /rdiff/Sdf/Sdf2BundleRelease22 /rdiff/Sdf/Sdf2BundleRelease22 Sdf2BundleRelease231 /view/Sdf/Sdf2BundleRelease231?t=2008-02-26T10:23Z Released August 17, 2005. Download See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs. Source tar ... (last changed by ArnoldLankamp) 2008-02-26T10:23Z ArnoldLankamp 1.3 updated major /rdiff/Sdf/Sdf2BundleRelease231 /rdiff/Sdf/Sdf2BundleRelease231 GeneralizedLR /view/Sdf/GeneralizedLR?t=2004-07-18T14:38Z Introduction A parsing algorithm that maintains multiple LR parsing states in parallel. From Object Oriented Tree Traversal With JJForester : GeneralizedLR parsing ... (last changed by MartinBravenboer) 2004-07-18T14:38Z MartinBravenboer 1.8 updated major /rdiff/Sdf/GeneralizedLR /rdiff/Sdf/GeneralizedLR GrammarTesting /view/Sdf/GrammarTesting?t=2004-02-25T11:15Z Tools Tools.ParseUnit is a tool for unit-testing SDF syntax definitions (last changed by MartinBravenboer) 2004-02-25T11:15Z MartinBravenboer 1.1 updated major /rdiff/Sdf/GrammarTesting /rdiff/Sdf/GrammarTesting
SDF is a language for defining syntax. It provides for an unprecedented level of conciseness in syntax definitions. First, syntax can be defined in modules. Second, lexical and context-free syntax are integrated in a single formalism in which the complete syntax of a language can be defined. Third, SDF includes declarative disambiguation constructs. Therefore, there is no need to introduce non-terminals to deal with ambiguities in a language.

Some useful places to start:


Number of topics: 0

  • Jump to topic: If you already know the name of the topic, enter the name of the topic into the GoBox at the top

  • WebChanges: Find out what topics in Sdf have changed recently

Statistics for TWiki.Sdf Web

Month: Topic
views:
Topic
saves:
File
uploads:
Most popular
topic views:
Top contributors for
topic save and uploads:
Dec 2007 4149 0 0 471 WebHome
373 WebStatistics
324 WebRss
172 SdfGrammars
168 SdfSoftware
151 SdfLanguage
115 SdfDevelopment
113 SdfPublications
109 SdfDocumentation
107 SGLR
 95 WebNews
 
Nov 2007 7839 26 0 918 WebHome
597 WebRss
428 WebStatistics
321 SdfGrammars
278 SdfSoftware
253 SdfLanguage
247 GeneralizedLR
219 SdfDocumentation
205 SGLR
181 SdfPublications
171 WebNews
 24 JurgenVinju
  2 MartinBravenboer
Oct 2007 8011 0 0 1027 WebHome
595 WebStatistics
452 WebRss
329 SdfSoftware
299 SdfGrammars
284 SdfLanguage
229 SdfDocumentation
200 SdfPublications
196 WebNews
177 SdfApplications
176 SdfBundle
 
Sep 2007 8208 0 0 903 WebStatistics
824 WebHome
583 WebRss
279 SdfGrammars
255 SdfSoftware
254 SdfLanguage
207 SdfPublications
191 SdfDocumentation
180 SdfBundle
177 GeneralizedLR
171 SGLR
 
Aug 2007 10840 0 0 1477 WebStatistics
835 WebHome
664 WebRss
397 SdfGrammars
343 SdfLanguage
340 SdfSoftware
270 SdfDocumentation
235 SGLR
224 WebChanges
219 SdfBundle
217 WebNews
 
Jul 2007 13935 0 0 1123 WebStatistics
980 WebHome
655 SdfGrammars
487 WebRss
452 SdfSoftware
420 SdfLanguage
406 WebNews
342 SdfPublications
331 GeneralizedLR
319 SdfDocumentation
300 SGLR
 
Jun 2007 8904 0 0 842 WebHome
475 WebRss
338 SdfGrammars
319 SdfLanguage
319 SdfSoftware
311 WebStatistics
261 GeneralizedLR
259 SdfDocumentation
253 Sdf2BundleRelease22
227 WebNews
225 SdfBundle
 
May 2007 6711 0 0 638 WebHome
539 WebRss
441 WebStatistics
303 SdfGrammars
240 SdfSoftware
204 SdfDocumentation
195 SdfLanguage
191 GeneralizedLR
154 SdfBundle
149 SdfPublications
148 SGLR
 
Apr 2007 7139 0 0 704 WebHome
593 WebStatistics
403 WebRss
304 SdfGrammars
284 SdfSoftware
244 SdfLanguage
214 SdfBundle
190 GeneralizedLR
182 SdfDocumentation
159 WebNotify
143 SdfPublications
 
Mar 2007 7022 0 0 788 WebHome
503 WebStatistics
447 WebRss
399 SdfGrammars
300 SdfSoftware
197 SdfBundle
178 SdfPublications
177 SdfLanguage
170 SdfDocumentation
165 WebNews
140 GeneralizedLR
 
Feb 2007 6882 8 0 645 WebHome
495 WebStatistics
421 SdfGrammars
372 WebRss
278 SdfSoftware
233 SdfBundle
183 GeneralizedLR
183 SdfLanguage
156 SdfDocumentation
153 SdfPublications
145 Sdf2BundleRelease23
  8 MartinBravenboer
Jan 2007 8295 3 0 1231 WebStatistics
753 WebHome
443 WebRss
412 SdfGrammars
325 SdfSoftware
234 SdfBundle
208 SdfLanguage
200 GeneralizedLR
182 SdfDocumentation
162 SGLR
160 SdfPublications
  3 MartinBravenboer
Dec 2006 5986 7 0 714 WebHome
481 WebRss
221 WebStatistics
220 SdfSoftware
218 SdfGrammars
170 SdfBundle
170 SdfLanguage
170 SdfDocumentation
142 SdfApplications
138 GeneralizedLR
126 Sdf2BundleRelease22
  7 MartinBravenboer
Nov 2006 5591 12 0 585 WebHome
509 WebStatistics
276 SdfGrammars
213 WebRss
207 SdfSoftware
170 SdfLanguage
159 SdfBundle
141 SdfDocumentation
140 GeneralizedLR
112 PGEN
111 SGLR
 12 MartinBravenboer
Oct 2006 5514 0 0 647 WebHome
479 WebStatistics
266 SdfGrammars
215 SdfSoftware
204 WebRss
153 SdfLanguage
141 SdfDocumentation
140 SdfBundle
139 GeneralizedLR
137 WebNotify
122 SGLR
 
Sep 2006 5526 1 0 585 WebHome
504 WebStatistics
222 SdfGrammars
184 SdfSoftware
165 WebRss
143 SdfLanguage
138 SdfDocumentation
127 GeneralizedLR
118 SdfBundle
113 WebNews
112 PGEN
  1 MartinBravenboer
Aug 2006 7832 2 0 770 WebHome
765 WebStatistics
275 GeneralizedLR
263 WebRss
255 SdfGrammars
252 SdfSoftware
214 SdfLanguage
199 WebChanges
195 SdfDocumentation
185 SGLR
183 WebNews
  2 MartinBravenboer
Jul 2006 9437 1 0 1221 WebStatistics
922 WebHome
371 SdfGrammars
324 SdfSoftware
287 SdfLanguage
255 SdfDocumentation
247 WebNews
234 GeneralizedLR
224 PGEN
215 WebNotify
214 SdfBundle
  1 ChristianoBraga
Jun 2006 9398 0 0 1217 WebStatistics
818 WebHome
368 SdfGrammars
350 SdfSoftware
251 GeneralizedLR
231 WebNotify
225 SdfLanguage
224 SdfDocumentation
216 WebChanges
210 WebNews
202 SdfBundle
 
May 2006 14645 0 0 2364 WebStatistics
1227 WebHome
611 SdfGrammars
524 SdfSoftware
413 SdfLanguage
397 WebNotify
382 WebNews
368 SdfDocumentation
356 SGLR
350 WebChanges
330 GeneralizedLR
 
Apr 2006 10797 12 0 1168 WebHome
902 WebStatistics
432 SdfGrammars
384 SdfSoftware
380 WebChanges
344 WebNews
324 WebNotify
307 SdfDocumentation
302 SdfBundle
301 SdfLanguage
259 WebSearch
 12 MartinBravenboer
Mar 2006 9869 0 0 1455 WebHome
843 WebStatistics
355 SdfSoftware
338 SdfGrammars
317 SdfLanguage
282 WebNews
270 SdfDocumentation
264 SdfBundle
235 SGLR
233 WebChanges
220 WebSearch
 
Feb 2006 6493 0 0 1037 WebHome
535 WebStatistics
240 SdfSoftware
231 SdfGrammars
198 WebNews
181 GeneralizedLR
174 SdfDocumentation
162 SdfLanguage
154 Sdf2BundleRelease23
145 SdfApplications
143 PGEN
 
Jan 2006 7291 0 0 1073 WebHome
498 WebStatistics
299 SdfSoftware
243 SdfGrammars
223 SdfLanguage
198 GeneralizedLR
183 WebNews
179 WebRss
173 SdfDocumentation
158 SGLR
156 SdfApplications
 
Dec 2005 8222 0 0 1116 WebHome
573 WebStatistics
334 SdfSoftware
318 SdfGrammars
264 WebNews
228 GeneralizedLR
226 SdfDocumentation
225 SdfLanguage
206 WebRss
203 WebChanges
189 WebNotify
 
Nov 2005 7030 4 0 1027 WebHome
399 WebStatistics
299 SdfSoftware
249 SdfGrammars
236 SdfLanguage
233 WebNews
203 WebIndex
198 SdfDocumentation
193 WebChanges
186 GeneralizedLR
178 WebNotify
  4 MartinBravenboer
Oct 2005 6078 1 0 746 WebHome
280 SdfSoftware
264 SdfGrammars
220 SdfDocumentation
209 SdfLanguage
182 GeneralizedLR
177 WebStatistics
175 WebNews
168 Sdf2BundleRelease23
157 WebIndex
156 WebChanges
  1 MartinBravenboer
Sep 2005 4628 0 0 519 WebHome
373 WebStatistics
204 SdfGrammars
189 SdfSoftware
173 SdfDocumentation
142 SdfLanguage
137 GeneralizedLR
121 WebChanges
119 WebNews
109 Sdf2BundleRelease23
107 WebNotify
 
Aug 2005 4476 12 0 627 WebHome
426 WebRss
244 SdfSoftware
205 SdfGrammars
189 SdfLanguage
161 WebIndex
156 SdfDocumentation
137 WebStatistics
129 WebChanges
122 SGLR
118 Sdf2BundleRelease23
 12 MartinBravenboer
Jul 2005 4281 0 0 587 WebHome
271 SdfSoftware
174 SdfDocumentation
165 SdfLanguage
154 SdfGrammars
150 WebIndex
129 WebNotify
122 SGLR
120 Sdf2BundleRelease23
114 WebChanges
106 PGEN
 
Jun 2005 2829 1 0 443 WebHome
173 SdfDocumentation
146 SdfSoftware
132 SdfLanguage
114 SdfGrammars
111 SGLR
 84 PGEN
 82 WebNews
 78 AQuickIntroductionToSDF
 77 SdfBundle
 76 WebNotify
  1 MartinBravenboer
May 2005 3025 0 0 551 WebHome
166 SdfDocumentation
145 SdfLanguage
129 SdfSoftware
116 SdfGrammars
108 WebChanges
102 AQuickIntroductionToSDF
 92 WebNotify
 83 SdfPublications
 80 SGLR
 76 Sdf2BundleRelease23
 
Apr 2005 2958 0 0 424 WebHome
156 SdfDocumentation
154 SdfGrammars
141 SdfLanguage
128 SdfSoftware
109 Sdf2BundleRelease23
 98 AQuickIntroductionToSDF
 86 GrammarBase
 85 SdfPublications
 79 PGEN
 78 WebNews
 
Mar 2005 2333 3 0 353 WebHome
148 SdfGrammars
144 SdfDocumentation
113 SdfLanguage
104 SdfSoftware
 80 GrammarBase
 77 AQuickIntroductionToSDF
 74 WebChanges
 71 Sdf2BundleRelease23
 63 SGLR
 59 SdfApplications
  3 MartinBravenboer
Feb 2005 2613 10 0 374 WebHome
191 SdfDocumentation
152 SdfGrammars
144 SdfLanguage
116 SdfSoftware
105 AQuickIntroductionToSDF
 88 Sdf2BundleRelease23
 85 GrammarBase
 79 SdfApplications
 68 SdfBundle
 66 SGLR
 10 MartinBravenboer
Jan 2005 2169 8 0 401 WebHome
172 SdfDocumentation
130 SdfGrammars
120 AQuickIntroductionToSDF
115 SdfLanguage
 95 SdfSoftware
 88 GrammarBase
 54 Sdf2BundleRelease23
 53 SdfPublications
 52 SdfBundle
 52 WebChanges
  8 MartinBravenboer
Dec 2004 2368 86 0 480 WebHome
157 SdfDocumentation
146 SdfLanguage
122 SdfSoftware
119 SdfGrammars
 88 AQuickIntroductionToSDF
 70 SGLR
 70 SdfPublications
 68 SdfApplications
 65 GrammarBase
 57 WebChanges
 86 MartinBravenboer
Nov 2004 2258 1 0 348 WebHome
252 WebRss
126 SdfLanguage
122 SdfDocumentation
 94 AQuickIntroductionToSDF
 90 SdfGrammars
 85 SGLR
 70 SdfSoftware
 68 GrammarBase
 67 SdfApplications
 61 SdfPublications
  1 MartinBravenboer
Oct 2004 1526 0 0 352 WebHome
103 SdfLanguage
 94 SdfDocumentation
 74 SdfGrammars
 68 WebRss
 66 GrammarBase
 66 AQuickIntroductionToSDF
 56 robots.txt
 48 SdfSoftware
 46 SdfApplications
 43 SGLR
 
Sep 2004 2072 5 0 697 WebHome
 94 SdfLanguage
 89 GrammarBase
 81 robots.txt
 80 SdfDocumentation
 67 SdfGrammars
 62 SdfSoftware
 62 GeneralizedLR
 54 SdfApplications
 51 SGLR
 46 SdfPublications
  5 MartinBravenboer
Aug 2004 1358 1 0 283 WebHome
 87 SdfDocumentation
 82 SdfLanguage
 59 SdfGrammars
 57 GrammarBase
 55 robots.txt
 48 SGLR
 46 GeneralizedLR
 42 SdfSoftware
 42 AQuickIntroductionToSDF
 41 SdfApplications
  1 MartinBravenboer
Jul 2004 1660 7 0 318 WebHome
125 SdfLanguage
111 SdfDocumentation
 88 GrammarBase
 82 SdfGrammars
 67 SdfApplications
 58 SdfSoftware
 56 SGLR
 54 SdfPublications
 53 AQuickIntroductionToSDF
 50 WebNews
  7 MartinBravenboer
Jun 2004 1584 5 0 644 WebHome
 78 SdfDocumentation
 70 SdfLanguage
 70 GeneralizedLR
 51 GrammarBase
 50 AQuickIntroductionToSDF
 47 SdfGrammars
 44 SdfApplications
 44 SGLR
 43 SdfPublications
 41 SdfSoftware
  5 EelcoVisser
May 2004 1339 28 0 325 WebHome
107 SdfLanguage
 77 SdfDocumentation
 74 GeneralizedLR
 72 GrammarBase
 58 SdfSoftware
 51 SdfGrammars
 42 SdfPublications
 39 WebNews
 33 robots.txt
 33 SdfDemos
 28 MartinBravenboer
Apr 2004 1451 0 0 229 WebHome
 93 GrammarBase
 83 SdfLanguage
 56 SdfDocumentation
 53 SdfGrammars
 43 SdfSoftware
 40 AQuickIntroductionToSDF
 36 PGEN
 35 SdfBugs
 34 SdfApplications
 34 SDFbyExample
 
Mar 2004 991 2 0 255 WebHome
 79 GrammarBase
 65 SdfLanguage
 55 SdfDocumentation
 44 SdfSoftware
 44 SdfGrammars
 35 AQuickIntroductionToSDF
 31 SdfPublications
 30 SdfApplications
 25 SGLR
 25 GeneralizedLR
  2 MartinBravenboer
Feb 2004 1108 24 0 259 WebHome
 75 SdfDocumentation
 64 GrammarBase
 63 SdfLanguage
 51 AQuickIntroductionToSDF
 47 SdfSoftware
 47 SdfGrammars
 32 SdfApplications
 31 SdfPublications
 29 SGLR
 26 GeneralizedLR
 24 MartinBravenboer
Jan 2004 469 86 0 159 WebHome
 68 WebChanges
 25 WebLeftBar
 17 SdfGrammars
 15 SdfApplications
 13 WebPreferences
 10 SdfLanguage
 10 SdfDocumentation
  9 WebStatistics
  9 SdfSoftware
  9 PGEN
 84 MartinBravenboer
  1 JurgenVinju
  1 EelcoDolstra
Dec 2003 540 0 0 440 WebStatistics
 23 WebHome
 10 WebChanges
  9 WebPreferences
  9 WebNotify
  8 WebIndex
  7 WebSearch
  6 WebLeftBar
  4 WebTools
  4 WebNews
  4 WebChanges500
 
Nov 2003 48 0 0  13 WebHome
  4 WebSearch
  4 WebPreferences
  4 WebChanges
  3 WebStatistics
  2 WebTools
  2 WebNotify
  2 WebNews
  2 WebIndex
  2 WebLeftBar
  2 WebChanges500
 
Oct 2003 451 1 0 381 WebStatistics
  7 WebNotify
  7 WebHome
  6 WebPreferences
  6 WebIndex
  6 WebLeftBar
  6 WebChanges
  4 WebTools
  4 WebSearch
  4 WebNews
  4 WebChanges500
  1 MartinBravenboer
Sep 2003 36 0 0   9 WebHome
  7 WebStatistics
  4 WebSearch
  4 WebPreferences
  4 WebNotify
  4 WebIndex
  3 WebChanges
 
Aug 2003 62 0 0   8 WebStatistics
  6 WebPreferences
  6 WebHome
  5 WebSearch
  5 WebNotify
  5 WebIndex
  5 WebChanges
  4 SiteMap
  3 WebNews
  3 WebLeftBar
  3 WebChanges500
 
Jul 2003 67 0 0   9 WebHome
  7 WebStatistics
  6 WebPreferences
  6 WebChanges
  6 SiteMap
  5 WebIndex
  5 WebLeftBar
  4 WebSearch
  4 WebNotify
  3 WebTools
  3 WebChanges500
 
Jun 2003 48 0 0   7 WebHome
  5 WebStatistics
  4 WebTools
  4 WebNotify
  4 WebNews
  4 WebIndex
  4 WebChanges
  4 SiteMap
  3 WebSearch
  3 WebPreferences
  2 WebChanges200
 
May 2003 9 0 0   8 WebHome
  1 WebChanges
 
Apr 2003 16 0 0   4 WebHome
  2 WebStatistics
  2 WebPreferences
  2 WebNotify
  1 WebTools
  1 WebSearch
  1 WebNews
  1 WebIndex
  1 WebChanges
  1 SiteMap
 
Mar 2003 0 0 0    
Feb 2003 14 0 0   6 WebHome
  1 WebTools
  1 WebSearch
  1 WebNews
  1 WebIndex
  1 WebLeftBar
  1 WebChanges500
  1 WebChanges
  1 SiteMap
 
Jan 2003 5 0 0   1 WebSearch
  1 WebPreferences
  1 WebIndex
  1 WebChanges100
  1 WebChanges
 
Dec 2002 10 0 0   4 WebHome
  1 WebTools
  1 WebStatistics
  1 WebNotify
  1 WebNews
  1 WebIndex
  1 SiteMap
 
Nov 2002 5 0 0   1 WebSearch
  1 WebPreferences
  1 WebHome
  1 WebLeftBar
  1 WebChanges
 
Oct 2002 37 0 0   7 WebHome
  6 WebStatistics
  3 WebSearch
  3 WebPreferences
  3 WebChanges
  2 WebTools
  2 WebNotify
  2 WebNews
  2 WebIndex
  2 SiteMap
  1 WebLeftBar
 
Sep 2002 7 3 0   3 WebPreferences
  2 WebLeftBar
  1 WebHome
  1 SiteMap
  3 EelcoVisser

Notes:

  • Do not edit this topic, it is updated automatically. (You can also force an update)
  • TWikiDocumentation tells you how to enable the automatic updates of the statistics.
  • Suggestion: You could archive this topic once a year and delete the previous year's statistics from the table.
Finding topics

Tracking activity

Look and feel

Number of topics: 61